int width,
int height,
int baseline);
-static void gtk_menu_bar_hierarchy_changed (GtkWidget *widget,
- GtkWidget *old_toplevel);
+static void gtk_menu_bar_root (GtkWidget *widget);
+static void gtk_menu_bar_unroot (GtkWidget *widget);
static gint gtk_menu_bar_get_popup_delay (GtkMenuShell *menu_shell);
static void gtk_menu_bar_move_current (GtkMenuShell *menu_shell,
GtkMenuDirectionType direction);
widget_class->measure = gtk_menu_bar_measure;
widget_class->size_allocate = gtk_menu_bar_size_allocate;
- widget_class->hierarchy_changed = gtk_menu_bar_hierarchy_changed;
+ widget_class->root = gtk_menu_bar_root;
+ widget_class->unroot = gtk_menu_bar_unroot;
menu_shell_class->submenu_placement = GTK_TOP_BOTTOM;
menu_shell_class->get_popup_delay = gtk_menu_bar_get_popup_delay;
}
static void
-gtk_menu_bar_hierarchy_changed (GtkWidget *widget,
- GtkWidget *old_toplevel)
+gtk_menu_bar_root (GtkWidget *widget)
{
+ GtkMenuBar *menubar = GTK_MENU_BAR (widget);
GtkWidget *toplevel;
- GtkMenuBar *menubar;
- menubar = GTK_MENU_BAR (widget);
+ GTK_WIDGET_CLASS (gtk_menu_bar_parent_class)->root (widget);
toplevel = gtk_widget_get_toplevel (widget);
+ add_to_window (GTK_WINDOW (toplevel), menubar);
+}
- if (old_toplevel)
- remove_from_window (GTK_WINDOW (old_toplevel), menubar);
-
- if (gtk_widget_is_toplevel (toplevel))
- add_to_window (GTK_WINDOW (toplevel), menubar);
+static void
+gtk_menu_bar_unroot (GtkWidget *widget)
+{
+ GtkMenuBar *menubar = GTK_MENU_BAR (widget);
+ GtkWidget *toplevel;
+
+ toplevel = gtk_widget_get_toplevel (widget);
+ remove_from_window (GTK_WINDOW (toplevel), menubar);
+
+ GTK_WIDGET_CLASS (gtk_menu_bar_parent_class)->unroot (widget);
}
/**